# SPDX-License-Identifier: GPL-2.0-only
config SND_SOC_SOF_INTEL_TOPLEVEL
	bool "SOF support for Intel audio DSPs"
	depends on X86 || COMPILE_TEST
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms.
	  Say Y if you have such a device.
	  If unsure select "N".

if SND_SOC_SOF_INTEL_TOPLEVEL

config SND_SOC_SOF_INTEL_ACPI
	def_tristate SND_SOC_SOF_ACPI
	select SND_SOC_SOF_BAYTRAIL  if SND_SOC_SOF_BAYTRAIL_SUPPORT
	select SND_SOC_SOF_BROADWELL if SND_SOC_SOF_BROADWELL_SUPPORT
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_INTEL_PCI
	def_tristate SND_SOC_SOF_PCI
	select SND_SOC_SOF_MERRIFIELD  if SND_SOC_SOF_MERRIFIELD_SUPPORT
	select SND_SOC_SOF_APOLLOLAKE  if SND_SOC_SOF_APOLLOLAKE_SUPPORT
	select SND_SOC_SOF_GEMINILAKE  if SND_SOC_SOF_GEMINILAKE_SUPPORT
	select SND_SOC_SOF_CANNONLAKE  if SND_SOC_SOF_CANNONLAKE_SUPPORT
	select SND_SOC_SOF_COFFEELAKE  if SND_SOC_SOF_COFFEELAKE_SUPPORT
	select SND_SOC_SOF_ICELAKE     if SND_SOC_SOF_ICELAKE_SUPPORT
	select SND_SOC_SOF_COMETLAKE   if SND_SOC_SOF_COMETLAKE_SUPPORT
	select SND_SOC_SOF_TIGERLAKE   if SND_SOC_SOF_TIGERLAKE_SUPPORT
	select SND_SOC_SOF_ELKHARTLAKE if SND_SOC_SOF_ELKHARTLAKE_SUPPORT
	select SND_SOC_SOF_JASPERLAKE  if SND_SOC_SOF_JASPERLAKE_SUPPORT
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_INTEL_HIFI_EP_IPC
	tristate
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_INTEL_ATOM_HIFI_EP
	tristate
	select SND_SOC_SOF_INTEL_COMMON
	select SND_SOC_SOF_INTEL_HIFI_EP_IPC
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_INTEL_COMMON
	tristate
	select SND_SOC_ACPI_INTEL_MATCH
	select SND_SOC_SOF_XTENSA
	select SND_SOC_INTEL_MACH
	select SND_SOC_ACPI if ACPI
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

if SND_SOC_SOF_INTEL_ACPI

config SND_SOC_SOF_BAYTRAIL_SUPPORT
	bool "SOF support for Baytrail, Braswell and Cherrytrail"
	depends on SND_SST_ATOM_HIFI2_PLATFORM_ACPI=n
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Baytrail, Braswell or Cherrytrail processors.
	  This option is mutually exclusive with the Atom/SST and Baytrail
	  legacy drivers. If you want to enable SOF on Baytrail/Cherrytrail,
	  you need to deselect those options first.
	  SOF does not support Baytrail-CR for now, so this option is not
	  recommended for distros. At some point all legacy drivers will be
	  deprecated but not before all userspace firmware/topology/UCM files
	  are made available to downstream distros.
	  Say Y if you want to enable SOF on Baytrail/Cherrytrail
	  If unsure select "N".

config SND_SOC_SOF_BAYTRAIL
	tristate
	select SND_SOC_SOF_INTEL_ATOM_HIFI_EP
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_BROADWELL_SUPPORT
	bool "SOF support for Broadwell"
	depends on SND_SOC_INTEL_HASWELL=n
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Broadwell processors.
	  This option is mutually exclusive with the Haswell/Broadwell legacy
	  driver. If you want to enable SOF on Broadwell you need to deselect
	  the legacy driver first.
	  SOF does fully support Broadwell yet, so this option is not
	  recommended for distros. At some point all legacy drivers will be
	  deprecated but not before all userspace firmware/topology/UCM files
	  are made available to downstream distros.
	  Say Y if you want to enable SOF on Broadwell
	  If unsure select "N".

config SND_SOC_SOF_BROADWELL
	tristate
	select SND_SOC_SOF_INTEL_COMMON
	select SND_SOC_SOF_INTEL_HIFI_EP_IPC
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

endif ## SND_SOC_SOF_INTEL_ACPI

if SND_SOC_SOF_INTEL_PCI

config SND_SOC_SOF_MERRIFIELD_SUPPORT
	bool "SOF support for Tangier/Merrifield"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Tangier/Merrifield processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_MERRIFIELD
	tristate
	select SND_SOC_SOF_INTEL_ATOM_HIFI_EP
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_APOLLOLAKE_SUPPORT
	bool "SOF support for Apollolake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Apollolake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_APOLLOLAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_GEMINILAKE_SUPPORT
	bool "SOF support for GeminiLake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Geminilake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_GEMINILAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_CANNONLAKE_SUPPORT
	bool "SOF support for Cannonlake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Cannonlake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_CANNONLAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_COFFEELAKE_SUPPORT
	bool "SOF support for CoffeeLake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Coffeelake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_COFFEELAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_ICELAKE_SUPPORT
	bool "SOF support for Icelake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Icelake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_ICELAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_COMETLAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_COMETLAKE_SUPPORT
	bool

config SND_SOC_SOF_COMETLAKE_LP_SUPPORT
	bool "SOF support for CometLake"
	select SND_SOC_SOF_COMETLAKE_SUPPORT
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Cometlake processors.
	  If unsure select "N".

config SND_SOC_SOF_TIGERLAKE_SUPPORT
	bool "SOF support for Tigerlake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the Tigerlake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_TIGERLAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_ELKHARTLAKE_SUPPORT
	bool "SOF support for ElkhartLake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the ElkhartLake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_ELKHARTLAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_JASPERLAKE_SUPPORT
	bool "SOF support for JasperLake"
	help
	  This adds support for Sound Open Firmware for Intel(R) platforms
	  using the JasperLake processors.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_JASPERLAKE
	tristate
	select SND_SOC_SOF_HDA_COMMON
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_HDA_COMMON
	tristate
	select SND_SOC_SOF_INTEL_COMMON
	select SND_SOC_SOF_HDA_LINK_BASELINE
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

if SND_SOC_SOF_HDA_COMMON

config SND_SOC_SOF_HDA_LINK
	bool "SOF support for HDA Links(HDA/HDMI)"
	depends on SND_SOC_SOF_NOCODEC=n
	select SND_SOC_SOF_PROBE_WORK_QUEUE
	help
	  This adds support for HDA links(HDA/HDMI) with Sound Open Firmware
		  for Intel(R) platforms.
	  Say Y if you want to enable HDA links with SOF.
	  If unsure select "N".

config SND_SOC_SOF_HDA_AUDIO_CODEC
	bool "SOF support for HDAudio codecs"
	depends on SND_SOC_SOF_HDA_LINK
	help
	  This adds support for HDAudio codecs with Sound Open Firmware
		  for Intel(R) platforms.
	  Say Y if you want to enable HDAudio codecs with SOF.
	  If unsure select "N".

config SND_SOC_SOF_HDA_PROBES
	bool "SOF enable probes over HDA"
	depends on SND_SOC_SOF_DEBUG_PROBES
	help
	  This option enables the data probing for Intel(R).
		  Intel(R) Skylake and newer platforms.
	  Say Y if you want to enable probes.
	  If unsure, select "N".

config SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
	bool "SOF enable DMI Link L1"
	help
	  This option enables DMI L1 for both playback and capture
	  and disables known workarounds for specific HDaudio platforms.
	  Only use to look into power optimizations on platforms not
	  affected by DMI L1 issues. This option is not recommended.
	  Say Y if you want to enable DMI Link L1
	  If unsure, select "N".

endif ## SND_SOC_SOF_HDA_COMMON

config SND_SOC_SOF_HDA_LINK_BASELINE
	tristate
	select SND_SOC_SOF_HDA if SND_SOC_SOF_HDA_LINK
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

config SND_SOC_SOF_HDA
	tristate
	select SND_HDA_EXT_CORE if SND_SOC_SOF_HDA_LINK
	select SND_SOC_HDAC_HDA if SND_SOC_SOF_HDA_AUDIO_CODEC
	select SND_INTEL_DSP_CONFIG
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level

endif ## SND_SOC_SOF_INTEL_PCI

endif ## SND_SOC_SOF_INTEL_TOPLEVEL
